Today, an organization's computer network has become its circulatory system. Organizations have combined desktop work stations, servers, and hosts into Local Area Network (LAN) communities. These Local Area Networks have been connected to other Local Area Networks and to Wide Area Networks (WANs). It has become a necessity of day-to-day operation that pairs of systems must be able to communicate when they need to, without regard to where they may be located in the network.
During the early years of network computing, proprietary networking protocols were the standard. However, the development of the Open Systems Interconnection Reference Model introduced by the International Organization for Standardization (ISO) has led to an impressive degree of interworking, which generally allows end-user applications to work very well between systems in a network. Implementations are based on written standards that have been made available by volunteers from dozens of computer vendors, hardware component vendors and independent software companies.
During the last decade, LANs have been proliferating. This has created a recurring problem of how to minimize congestion and optimize throughput that must be solved by network managers. An early solution was to simply divide Local Area Networks into multiple smaller networks serving smaller populations. These segments were connected by bridges to form a single Local Area Network with traffic being segregated locally to each segment.
The evolution of new network types and WANs created a need for routers. For example, the Internet is a set of networks connected by gateways, which are sometimes referred to as routers. Routers added filtering and firewalling capability to provide more control over broadcast domains, limit broadcast traffic and enhance security. A router is able to chose the best path through the network due to embedded intelligence. This added intelligence also allowed routers to build redundant paths to destinations when possible. Nevertheless, the added complexity of best path selection capability accorded by the embedded intelligence increased the port cost of routers and caused substantial latency overhead. Shared-media networks comprising distributed client/server data traffic, expanded user populations and more complex applications gave birth to new bandwidth bottlenecks. Such congestion produced unpredictable network response times, the inability to support the delay-sensitive applications and higher network failure rates.
Congestion control in modern networks is increasingly becoming an important issue. The explosive growth of Internet applications such as the World Wide Web (WWW) has pushed current technology to its limit, and it is clear that faster transport and improved congestion control mechanisms are required. As a result, many equipment vendors and service providers are turning to advanced networking technology to provide adequate solutions to the complex quality of service (QoS) management issues involved. Examples include asynchronous transfer mode (ATM) networks and emerging Internet Protocol (IP) network services. Nevertheless, there is still the need to support a host of existing legacy IP protocols within these newer paradigms. In particular, the ubiquitous TCP transport-layer protocol has long been the workhorse transport protocol in IP networks, widely used by web-browsers, file/email transfer services, etc.
Transmission Control Protocol (TCP) is a part of the TCP/IP protocol family that has gained the position as one of the world's most important data communication protocols with the success of the Internet. TCP provides a reliable data connection between devices using TCP/IP protocols. TCP operates on top of IP that is used for packing the data into data packets, called datagrams, and for transmitting across the network.
The Internet Protocol (IP) is a network layer protocol that routes data across an Internet. The Internet Protocol was designed to accommodate the use of host and routers built by different vendors, encompass a growing variety of growing network types, enable the network to grow without interrupting servers, and support a higher-layer of session and message-oriented services. The IP network layer allows integration of LAN “islands.”
However, IP doesn't contain any flow control or retransmission mechanisms. That is why TCP is typically used on top of it. More particularly, TCP uses acknowledgments for detecting lost data packets. TCP/IP networks are nowadays probably the most important of all networks, and operate on top of several (physical) networks, such as the ATM networks mentioned above. These underlying networks may offer some information about the condition of network and traffic, which may be used to provide feedback regarding congestion.
To manage congestion, TCP can use a sliding window mechanism coupled with reactive congestion control to adjust the sender's transmission window size. The protocol adjusts its transmission behavior contingent upon returning acknowledgment (ACK) packets sent from the remote receiver's end.
A problem with TCP, however, is that in certain instances of bi-directional communication between hosts (each functioning as a sender and receiver), the TCP congestion control can be ineffective. More particularly, consider bi-directional communications, such as bi-directional file transfer protocol (FTP) communications, between hosts operating in accordance with TCP, for example. In such an instance, the hosts may communicate over a network, where one of the hosts is coupled to the network via a gateway or access point, where communications across a single path link between the host and the gateway can occur in accordance with a protocol such as the Point-to-Point protocol (PPP). In various instances, the time required for a data packet to travel between the host and the gateway can contribute significantly to the overall time required for the packet to travel from a source host to a destination host. Examples of such a single link can be found in a telephone dial-up modem system between a user terminal and an Internet Service Provider (ISP), and in a Code Division Multiple Access (CDMA) packet data system between a mobile station and the Packet Data Serving Node (PDSN).
In such instances, during communication between the hosts, the data packets from one host (host A) to another host (host B) are typically multiplexed with the ACK packets from host A to host B. In instances in which host A has a larger reception window than host B, a larger portion of the data (i.e., data packets and ACK packets) from host A to host B can backup in host A's transmission window while the smaller reception window of host B processes the data. Backing up a larger portion of the data in the transmission window of host A, however, undesirably delays the ACK packets from reaching host B. And by delaying the ACK packets from reaching host B, data transmission from host B to host A is typically delayed, thus resulting in undesirably slow throughput from host B to host A.